/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Driver;

import Datos.GestorEstrategias;
import Dominio.Carta;
import Dominio.IERemigio;
import Dominio.Jugada;
import Dominio.Mazo;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
/**
 *
 * @author aleixfdz
 */
public class dier {
  Scanner in;
  
  public dier(Scanner in) {
    this.in = in;
  }

  public void start() throws Exception {
    Date date = new Date();
    Random n = new Random(date.getTime());
    GestorEstrategias ge = new GestorEstrategias();
    IERemigio ier = new IERemigio(ge.estrategia("ie"));
    Mazo mano = new Mazo(0, true);
    Carta descarte = new Carta();
    descarte.setPalo(i2p(n.nextInt(5)));
    descarte.setValor(n.nextInt(14), 0);

    //「Como：ø」 「Pica：J」 「Treb：1」 「Treb：J」 「Treb：9」 「Cora：Q」
    //「Diam：Q」 「Pica：7」 「Cora：1」 「Pica：K」
    Carta c1 = new Carta();
    c1.setValor(13, 0);
    c1.setPalo("Picas");
    Carta c2 = new Carta();
    c2.setValor(1, 0);
    c2.setPalo("Corazones");
    Carta c3 = new Carta();
    c3.setValor(1, 0);
    c3.setPalo("Picas");
    Carta c4 = new Carta();
    c4.setValor(12, 0);
    c4.setPalo("Diamantes");
    Carta c5 = new Carta();
    c5.setValor(12, 0);
    c5.setPalo("Corazones");
    Carta c6 = new Carta();
    c6.setValor(13, 0);
    c6.setPalo("Treboles");
    Carta c7 = new Carta();
    c7.setValor(11, 0);
    c7.setPalo("Treboles");
    Carta c8 = new Carta();
    c8.setValor(1, 0);
    c8.setPalo("Treboles");
    Carta c9 = new Carta();
    c9.setValor(11, 0);
    c9.setPalo("Picas");
    Carta c10 = new Carta();
    c10.setValor(10, 0);
    c10.setPalo("Corazones");
    mano.introducir_carta(1, c1);
    mano.introducir_carta(1, c2);
    mano.introducir_carta(1, c3);
    mano.introducir_carta(1, c4);
    mano.introducir_carta(1, c5);
    mano.introducir_carta(1, c6);
    mano.introducir_carta(1, c7);
    mano.introducir_carta(1, c8);
    mano.introducir_carta(1, c9);
    mano.introducir_carta(1, c10);
    //random els que faltan
    for (int i = mano.vmazo.size(); i < 10; ++i) {
      Carta c = new Carta();
      c.setValor(n.nextInt(14), 0);
      
      if(c.getValor() == 0) {
        c.setPalo("Comodin");
      }
      else {
        c.setPalo(i2p(n.nextInt(4)+1));
      }

      mano.introducir_carta(1, c);
    }

    pinfo(mano, 0, descarte);

    Jugada j = ier.elegir(mano, descarte);

    ier.debug(1);
    System.out.println(ier.getLog());
    
  }



  String i2p(int i) {
    switch (i) {
      case 0: return "Comodin";
      case 1: return "Picas";
      case 2: return "Corazones";
      case 3: return "Diamantes";
      default: return "Treboles";
    }
  }

    private void pinfo(Mazo mano, int jugador, Carta descarte) {
    pinfo(mano, jugador);
    System.out.println("Descarte  | " + pc(descarte));
  }
  private void pinfo(Mazo mano, int jugador) {
    System.out.println("Jugador   | " + jugador);
    System.out.println("Mano      |" + pm(mano));
  }

  private String pm(Mazo m) {
    String s = "";
    for (int i = 1; i <= m.vmazo.size(); ++i) {
      s += " " + pc(m.consultar_carta(i));
    }
    return s;
  }

  private String pc(Carta c) {
    return "「" + c.getPalo().substring(0, 4) + "：" + v2s(c.getValor()) + "」";
  }

  private String v2s(int i) {
    if (i == 0) {
      return "ø";
    }
    if (i == 11) {
      return "J";
    }
    if (i == 12) {
      return "Q";
    }
    if (i == 13) {
      return "K";
    }
    String s = "";
    s += i;
    return s;
  }

}
